package com.oet.webservice.business;

import java.util.Date;
import java.util.List;

import javax.jws.WebParam;
import javax.jws.WebService;

import com.oet.persistence.entity.Category;
import com.oet.persistence.entity.CourseSeries;
import com.oet.persistence.entity.Customer;
import com.oet.persistence.entity.Teacher;
import com.oet.webservice.basic.OperationStatus;
import com.oet.webservice.basic.WebServiceSimListParams;
import com.oet.webservice.business.data.SimWebCategoryListResult;
import com.oet.webservice.business.data.SimWebCourseFileListResult;
import com.oet.webservice.business.data.SimWebCourseListResult;
import com.oet.webservice.business.data.SimWebCourseNewsListResult;
import com.oet.webservice.business.data.SimWebCourseSeriesListResult;
import com.oet.webservice.business.data.SimWebCustomerListResult;
import com.oet.webservice.business.data.SimWebServiceFile;
import com.oet.webservice.business.data.SimWebTeacherListResult;
import com.oet.webservice.business.data.SimWebUserCommentListResult;
import com.oet.webservice.business.data.SimWebUserCourseSeriesListResult;
import com.oet.webservice.business.data.SimWebUserHistoryCourseListResult;
import com.oet.webservice.business.data.SimWebUserPlannedCourseListResult;
import com.oet.webservice.business.data.WebServiceCategory;
import com.oet.webservice.business.data.WebServiceCourse;
import com.oet.webservice.business.data.WebServiceCourseFile;
import com.oet.webservice.business.data.WebServiceCourseNews;
import com.oet.webservice.business.data.WebServiceCourseSeries;
import com.oet.webservice.business.data.WebServiceCustomer;
import com.oet.webservice.business.data.WebServiceTeacher;
import com.oet.webservice.business.data.WebServiceUserComment;
import com.oet.webservice.business.data.WebServiceUserCourseSeries;
import com.oet.webservice.business.data.WebServiceUserHistoryCourse;
import com.oet.webservice.business.data.WebServiceUserPlannedCourse;

@WebService
public interface OetSimBusinessMngrService {

	SimWebServiceFile getImageByName(@WebParam(name = "fileName")String fileName);
	
	WebServiceCategory getCategoryById(
			@WebParam(name = "id")Long id);

	WebServiceCategory getCategoryByTitle(
			@WebParam(name = "name")String name);

	OperationStatus storeCategory(
			@WebParam(name = "ydkWebCategory")WebServiceCategory instance);
	
	OperationStatus updateCategory(
			@WebParam(name = "ydkWebCategory")WebServiceCategory instance);

	OperationStatus deleteCategory(
			@WebParam(name = "ids")List<Long> ids);
	
	OperationStatus addChildrenToCategory(
			@WebParam(name = "ids")List<Long> ids,
			@WebParam(name = "categoryId")Long categoryId);
	
	OperationStatus removeChildrenFromCategory(
			@WebParam(name = "ids")List<Long> ids,
			@WebParam(name = "categoryId")Long categoryId);
	
	SimWebCategoryListResult seachCategory(
            @WebParam(name = "name") String name,
            @WebParam(name = "listParams")WebServiceSimListParams listParams);
	
	
	WebServiceCourseSeries getCourseSeriesById(
			@WebParam(name = "id")Long id);

	WebServiceCourseSeries getCourseSeriesByTitle(
			@WebParam(name = "name")String name);

	OperationStatus storeCourseSeries(
			@WebParam(name = "ydkWebCourseSeries")WebServiceCourseSeries instance);
	
	OperationStatus updateCourseSeries(
			@WebParam(name = "ydkWebCourseSeries")WebServiceCourseSeries instance);

	OperationStatus deleteCourseSeries(
			@WebParam(name = "ids")List<Long> ids);

	SimWebCourseSeriesListResult seachCourseSeries(
			@WebParam(name = "name")String name, @WebParam(name = "categoryId")Long categoryId, 
			@WebParam(name = "level")Integer level, @WebParam(name = "courseNumber")Integer courseNumber,
			@WebParam(name = "teacherId")Long teacherId,
			@WebParam(name = "capacity")Integer capacity, 			
			@WebParam(name = "occupyNum")Integer occupyNum, 
			@WebParam(name = "startDate")Date startDate, 
			@WebParam(name = "endDate")Date endDate, 
			@WebParam(name = "isActived")Boolean isActived, 
			@WebParam(name = "totalPrice")Double totalPrice,
            @WebParam(name = "listParams")WebServiceSimListParams listParams);
	
	
	WebServiceCourseFile getCourseFileById(
			@WebParam(name = "id")Long id);

	WebServiceCourseFile getCourseFileByTitle(
			@WebParam(name = "name")String name);

	OperationStatus storeCourseFile(
			@WebParam(name = "ydkWebCourseFile")WebServiceCourseFile instance, 
			@WebParam(name = "content")byte[] content);
	
	OperationStatus updateCourseFile(
			@WebParam(name = "ydkWebCourseFile")WebServiceCourseFile instance, 
			@WebParam(name = "content")byte[] content);

	OperationStatus deleteCourseFile(
			@WebParam(name = "ids")List<Long> ids);

	SimWebCourseFileListResult seachCourseFile(
			@WebParam(name = "courseId")Long courseId, 
			@WebParam(name = "courseSeriesId")Long courseSeriesId, 
			@WebParam(name = "name")String name, 
			@WebParam(name = "type")Integer type,
			@WebParam(name = "version")Integer version, 
			@WebParam(name = "startDate")Date startDate, 
			@WebParam(name = "endDate")Date endDate,
            @WebParam(name = "listParams")WebServiceSimListParams listParams);
	
	WebServiceCourseNews getCourseNewsById(
			@WebParam(name = "id")Long id);

	WebServiceCourseNews getCourseNewsByTitle(
			@WebParam(name = "name")String name);

	OperationStatus storeCourseNews(
			@WebParam(name = "ydkWebCourseNews")WebServiceCourseNews instance);
	
	OperationStatus updateCourseNews(
			@WebParam(name = "ydkWebCourseNews")WebServiceCourseNews instance);

	OperationStatus deleteCourseNews(
			@WebParam(name = "ids")List<Long> ids);

	SimWebCourseNewsListResult seachCourseNews(
			@WebParam(name = "courseId")Long courseId, 
			@WebParam(name = "courseSeriesId")Long courseSeriesId, 
			@WebParam(name = "name")String name, 
			@WebParam(name = "type")Integer type,
			@WebParam(name = "version")Integer version, 
			@WebParam(name = "startDate")Date startDate, 
			@WebParam(name = "endDate")Date endDate,
            @WebParam(name = "listParams")WebServiceSimListParams listParams);
	
	
	WebServiceCustomer getCustomerById(
			@WebParam(name = "id")Long id);

	WebServiceCustomer getCustomerByTitle(
			@WebParam(name = "name")String name);

	OperationStatus storeCustomer(
			@WebParam(name = "ydkWebCustomer")WebServiceCustomer instance, 
			@WebParam(name = "content")byte[] content);
	
	OperationStatus updateCustomer(
			@WebParam(name = "ydkWebCustomer")WebServiceCustomer instance, 
			@WebParam(name = "content")byte[] content);

	OperationStatus deleteCustomer(
			@WebParam(name = "ids")List<Long> ids);

	SimWebCustomerListResult seachCustomer(
			@WebParam(name = "name") String name, 
			@WebParam(name = "email")String email, 
			@WebParam(name = "mobilePhone")String mobilePhone, 
			@WebParam(name = "level")Integer level, 
			@WebParam(name = "couresHours")Integer couresHours, 
			@WebParam(name = "isActived")Boolean isActived, 
			@WebParam(name = "totalCourseNumber")Integer totalCourseNumber,
			@WebParam(name = "isTestFinished")Boolean isTestFinished, 
			@WebParam(name = "accountId")Long accountId,
            @WebParam(name = "listParams")WebServiceSimListParams listParams);

	
	WebServiceTeacher getTeacherById(
			@WebParam(name = "id")Long id);

	WebServiceTeacher getTeacherByTitle(
			@WebParam(name = "name")String name);

	OperationStatus storeTeacher(
			@WebParam(name = "ydkWebTeacher")WebServiceTeacher instance, 
			@WebParam(name = "content")byte[] content);
	
	OperationStatus updateTeacher(
			@WebParam(name = "ydkWebTeacher")WebServiceTeacher instance, 
			@WebParam(name = "content")byte[] content);

	OperationStatus deleteTeacher(
			@WebParam(name = "ids")List<Long> ids);

	SimWebTeacherListResult seachTeacher(
			@WebParam(name = "name") String name, 
			@WebParam(name = "email") String email, 
			@WebParam(name = "mobilePhone") String mobilePhone, 
			@WebParam(name = "level") Integer level, 
			@WebParam(name = "isActived") Boolean isActived, 
			@WebParam(name = "totalCourseNumber") Integer totalCourseNumber,
            @WebParam(name = "listParams")WebServiceSimListParams listParams);
	
	
	
	
	
	WebServiceCourse getCourseById(
			@WebParam(name = "id")Long id);

	WebServiceCourse getCourseByTitle(
			@WebParam(name = "name")String name);

	OperationStatus storeCourse(
			@WebParam(name = "ydkWebCourse")WebServiceCourse instance, 
			@WebParam(name = "content")byte[] content);
	
	OperationStatus updateCourse(
			@WebParam(name = "ydkWebCourse")WebServiceCourse instance, 
			@WebParam(name = "content")byte[] content);

	OperationStatus deleteCourse(
			@WebParam(name = "ids")List<Long> ids);

	SimWebCourseListResult seachCourse(
			@WebParam(name = "courseSeriesId") Long courseSeriesId,
			@WebParam(name = "name") String name,  
			@WebParam(name = "chapterId")Integer chapterId, 
			@WebParam(name = "type")Integer type, 
			@WebParam(name = "level")Integer level, 
			@WebParam(name = "payFactor")Double payFactor, 
			@WebParam(name = "teacherId")Long teacherId,
			@WebParam(name = "topic")String topic, 
			@WebParam(name = "capacity")Integer capacity, 
			@WebParam(name = "occupyNum")Integer occupyNum, 
			@WebParam(name = "startDate")Date startDate, 
			@WebParam(name = "endDate")Date endDate,
            @WebParam(name = "listParams")WebServiceSimListParams listParams);
	
	
	
	WebServiceUserComment getUserCommentById(
			@WebParam(name = "id")Long id);

	WebServiceUserComment getUserCommentByTitle(
			@WebParam(name = "name")String name);

	OperationStatus storeUserComment(
			@WebParam(name = "ydkWebUserComment")WebServiceUserComment instance);
	
	OperationStatus updateUserComment(
			@WebParam(name = "ydkWebUserComment")WebServiceUserComment instance);

	OperationStatus deleteUserComment(
			@WebParam(name = "ids")List<Long> ids);

	SimWebUserCommentListResult seachUserComment(
			@WebParam(name = "courseId")Long courseId,
			@WebParam(name = "courseSeriesId")Long courseSeriesId,
			@WebParam(name = "teacherId")Long teacherId, 
			@WebParam(name = "topic")String topic,
			@WebParam(name = "type")Integer type,
			@WebParam(name = "level")Integer level, 
			@WebParam(name = "startDate")Date startDate,
			@WebParam(name = "endDate")Date endDate,
			@WebParam(name = "customerId")Long customerId,
            @WebParam(name = "listParams")WebServiceSimListParams listParams);
		
	
	
	
	
	WebServiceUserCourseSeries getUserCourseSeriesById(
			@WebParam(name = "id")Long id);

	WebServiceUserCourseSeries getUserCourseSeriesByTitle(
			@WebParam(name = "name")String name);

	OperationStatus storeUserCourseSeries(
			@WebParam(name = "ydkWebUserCourseSeries")WebServiceUserCourseSeries instance);
	
	OperationStatus updateUserCourseSeries(
			@WebParam(name = "ydkWebUserCourseSeries")WebServiceUserCourseSeries instance);

	OperationStatus deleteUserCourseSeries(
			@WebParam(name = "ids")List<Long> ids);

	SimWebUserCourseSeriesListResult seachUserCourseSeries(
			@WebParam(name = "courseSeriesId")Long courseSeriesId, 
			@WebParam(name = "name") String name,  
			@WebParam(name = "type")Integer type,
			@WebParam(name = "level")Integer level,
			@WebParam(name = "teacherId")Long teacherId,
			@WebParam(name = "teacherName")String teacherName,
			@WebParam(name = "capacity")Integer capacity,
			@WebParam(name = "startDate")Date startDate, 
			@WebParam(name = "endDate")Date endDate, 
			@WebParam(name = "customerId")Long customerId,
            @WebParam(name = "listParams")WebServiceSimListParams listParams);
		
	
	
	WebServiceUserHistoryCourse getUserHistoryCourseById(
			@WebParam(name = "id")Long id);

	WebServiceUserHistoryCourse getUserHistoryCourseByTitle(
			@WebParam(name = "name")String name);

	OperationStatus storeUserHistoryCourse(
			@WebParam(name = "ydkWebUserHistoryCourse")WebServiceUserHistoryCourse instance);
	
	OperationStatus updateUserHistoryCourse(
			@WebParam(name = "ydkWebUserHistoryCourse")WebServiceUserHistoryCourse instance);

	OperationStatus deleteUserHistoryCourse(
			@WebParam(name = "ids")List<Long> ids);

	SimWebUserHistoryCourseListResult seachUserHistoryCourse(
			@WebParam(name = "courseId")Long courseId, 
			@WebParam(name = "courseSeriesId")Long courseSeriesId,
			@WebParam(name = "name") String name,
			@WebParam(name = "type")Integer type,
			@WebParam(name = "level")Integer level,
			@WebParam(name = "payFactor")Double payFactor,
			@WebParam(name = "teacherId")Long teacherId,
			@WebParam(name = "teacherName")String teacherName,
			@WebParam(name = "topic")String topic,
			@WebParam(name = "capacity")Integer capacity,
			@WebParam(name = "startDate")Date startDate,
			@WebParam(name = "endDate")Date endDate,
			@WebParam(name = "isCommented")Boolean isCommented,
			@WebParam(name = "customerId")Long customerId,
            @WebParam(name = "listParams")WebServiceSimListParams listParams);
		
	
	
	
	
	WebServiceUserPlannedCourse getUserPlannedCourseById(
			@WebParam(name = "id")Long id);

	WebServiceUserPlannedCourse getUserPlannedCourseByTitle(
			@WebParam(name = "name")String name);

	OperationStatus storeUserPlannedCourse(
			@WebParam(name = "ydkWebUserPlannedCourse")WebServiceUserPlannedCourse instance);
	
	OperationStatus updateUserPlannedCourse(
			@WebParam(name = "ydkWebUserPlannedCourse")WebServiceUserPlannedCourse instance);

	OperationStatus deleteUserPlannedCourse(
			@WebParam(name = "ids")List<Long> ids);

	SimWebUserPlannedCourseListResult seachUserPlannedCourse(
			@WebParam(name = "courseId")Long courseId, 
			@WebParam(name = "courseSeriesId")Long courseSeriesId, 
			@WebParam(name = "name") String name,
			@WebParam(name = "type")Integer type, 
			@WebParam(name = "level")Integer level, 
			@WebParam(name = "payFactor")Double payFactor, 
			@WebParam(name = "teacherId")Long teacherId, 
			@WebParam(name = "teacherName")String teacherName,
			@WebParam(name = "topic")String topic, 
			@WebParam(name = "capacity")Integer capacity,
			@WebParam(name = "startDate")Date startDate, 
			@WebParam(name = "endDate")Date endDate, 
			@WebParam(name = "customerId")Long customerId,
            @WebParam(name = "listParams")WebServiceSimListParams listParams);
		
	
	

}
